UI.marketing, version 2.0

Software Architecture

Last year I was fortunate to work with several old co-workers on architecting the next version of their app. Their end goals where simple: Transform its monolithic code base into a more robust "Service Oriented Architecture that would be capable of adapting to change over time.

To accomplish this, I reviewed the original software goals to evaluate what was successful and factored in user feedback to guide what improvements and new features needed to be added.

Finally, we seperated each actionable item into "Must Have", "Should Have" and "Nice To Have". While this project is still underway, to date, their development team has already been able to increase their "Velocity" 5x; plug-in new features as needed; and make changes in near real-time.

The current version of the UI.marketing software, 1.0, had carried the company from inception on through to profitability, but just like anything, as time goes on and things age, one weighs the costs / benefits of simply performing on-going maintenance versus upgrading to something more robust that can ensure long-term support and stability.

The company had reached that point and it was now time to upgrade the 1.0 software into its next-generation, new incarnation; one that leveraged modern technologies and frameworks to best situate their business’ core software in the position it needed to be to ensure long term growth, and success.

Version 2.0 was entirely re-architected with three goals in minds:

  1. Ensure current, wanted, version 1.0 functionality remains.
  2. Improve upon the original software's functionality where/when/if possible.
  3. Re-engineer how UI.marketing's underlying code is built, transforming it from a single "monolithic" codebase into one that leverages a "Service Oriented Architecture" model to perform its heavy lifting, separating out application's different functionality into "services" that can then be transparently upgraded later on making it possible for easier, future product enhancements and upgrades.

Objectives

  1. V2.0 Core: Replace existing Reports.marketing v1.0 codebase with an underlying, service-oriented-architecture stack that will serve as the overall UI.marketing v2.0 platform’s core foundation moving forward.
  2. V2.0 Integrations: Create an ingestion template that can be (re)used to on-board all existing, as well as new, third-party API feeds.
  3. V2.0 Reports: Iteratively roll out v2.0 functionality to clients as it becomes available throughout the year.
  4. V1.0 Maintenance: Stabilize Reports.marketing v1.0 throughout v2.0 development.

Road Map

Q1 (30,000 ft. view)

Q2 (15,000 ft. view)

Q2 (5,000 ft. view)

Q4 (Ground level view)